/*
 * Copyright 2010 David de Mingo
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

package org.shalma.internal.client.view;

import com.google.gwt.user.client.ui.FocusListener;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;

public class ParameterView extends TextBox implements FocusListener {

	private static final String INACTIVE_STYLE = "inactive";

	private final String name;

	private boolean hasData = false;

	// ///

	public ParameterView(String name) {
		this.name = name;

		setText(name);
		setActive(false);
		addFocusListener(this);
	}

	// ///

	public String getValue() {
		// TODO
		return getText();
	}

	// ///

	public void onFocus(Widget sender) {
		if (!hasData)
			setText("");

		setActive(true);
	}

	public void onLostFocus(Widget sender) {
		hasData = getText().length() > 0;
		if (!hasData)
			setText(name);

		setActive(hasData);
	}

	// ///

	private void setActive(boolean isActive) {
		if (isActive)
			removeStyleName(INACTIVE_STYLE);
		else
			addStyleName(INACTIVE_STYLE);
	}
}
